Dynamic telephone number assignment

ABSTRACT

Methods, systems, and apparatus include computer programs encoded on a computer-readable storage medium for dynamic telephone number assignment. A method includes: providing a content item to a user device, the content item including a control for initiating a call to a content sponsor associated with the content item; assigning a telephone number from a pool to the content item; receiving a control interaction indication; facilitating a connection between the user and the content sponsor based on the interaction; storing an association between a user identifier, the telephone number, and a content sponsor identifier such that future calls from the user to the telephone number can be routed to the content sponsor, even after the telephone number has been returned to the pool; and linking a content item impression with the connection such that a report can be generated that shows an effectiveness of the content item impression.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of and claims priority toU.S. application Ser. No. 15/065,439, filed on Mar. 9, 2016, which is acontinuation application of and claims priority to U.S. application Ser.No. 14/015,451, filed on Aug. 30, 2013. The entire contents of each arehereby incorporated by reference.

BACKGROUND

This specification relates to information presentation.

The Internet provides access to a wide variety of resources. Forexample, video and/or audio files, as well as web pages for particularsubjects or particular news articles, are accessible over the Internet.Access to these resources presents opportunities for other content(e.g., advertisements) to be provided with the resources. For example, aweb page can include slots in which content can be presented. Theseslots can be defined in the web page or defined for presentation with aweb page, for example, along with search results.

Slots can be allocated to content sponsors through a reservation systemor an auction. For example, content sponsors can provide bids specifyingamounts that the sponsors are respectively willing to pay forpresentation of their content. In turn, a reservation can be made or anauction can be performed, and the slots can be allocated to sponsorsaccording, among other things, to their bids and/or the relevance of thesponsored content to content presented on a page hosting the slot or arequest that is received for the sponsored content.

SUMMARY

In general, one innovative aspect of the subject matter described inthis specification can be implemented in methods that include a methodfor dynamic telephone number assignment. The method comprises: providingan impression including providing a content item for presentation on adevice associated with a user, the content item including a control forinitiating a call to a content sponsor associated with the content item;assigning a telephone number from a pool of available telephone numbersto the content item, wherein assigning includes associating thetelephone number with the content item; receiving an indication of aninteraction with the control; facilitating a connection between the userand the content sponsor based on the interaction; storing an associationbetween an identifier associated with the user, the assigned telephonenumber and an identifier for the content sponsor such that future callsfrom the user to the telephone number can be routed to the contentsponsor, even after the assigned telephone number has been returned tothe pool of available telephone numbers; and linking an impression ofthe content item with the connection such that a report can be generatedthat shows an effectiveness of the impression of the content item.

In general, another aspect of the subject matter described in thisspecification can be implemented in computer program products. Acomputer program product is tangibly embodied in a computer-readablestorage device and comprises instructions. The instructions, whenexecuted by a processor, cause the processor to: provide an impressionincluding providing a content item for presentation on a deviceassociated with a user, the content item including a control forinitiating a call to a content sponsor associated with the content item;assign a telephone number from a pool of available telephone numbers tothe content item, wherein assigning includes associating the telephonenumber with the content item; receive an indication of an interactionwith the control; facilitate a connection between the user and thecontent sponsor based on the interaction; store an association betweenan identifier associated with the user, the assigned telephone numberand an identifier for the content sponsor such that future calls fromthe user to the telephone number can be routed to the content sponsor,even after the assigned telephone number has been returned to the poolof available telephone numbers; and link an impression of the contentitem with the connection such that a report can be generated that showsan effectiveness of the impression of the content item.

In general, another aspect of the subject matter described in thisspecification can be implemented in systems. A system includes a contentmanagement system, a telephony system, and an available telephone numberpool. The content management system is configured to: provide animpression including providing a content item for presentation on adevice associated with a user, the content item including a control forinitiating a call to a content sponsor associated with the content item;and receive an indication of an interaction with the control. Thetelephony system is configured to: assign a telephone number from theavailable telephone number pool to the content item, wherein assigningincludes associating the telephone number with the content item;facilitate a connection between the user and the content sponsor basedon the interaction with the control; store an association between anidentifier associated with the user, the assigned telephone number andan identifier for the content sponsor such that future calls from theuser to the telephone number can be routed to the content sponsor, evenafter the assigned telephone number has been returned to the availabletelephone number pool; and link an impression of the content item withthe connection such that a report can be generated that shows aneffectiveness of the impression of the content item.

These and other implementations can each optionally include one or moreof the following features. The device can be a mobile device. Thecontent item can be an advertisement. The assigning can occur either ata time of impression or after receiving the indication of aninteraction. The control can be a button that does not include a visibletelephone number. The pool can include a plurality of telephone numberswhich may or may not have been previously assigned to other contentitems but are now available for assignment. The assigned telephonenumber can be returned back to the pool after either a predeterminedamount of time after assignment to a content item, or after apre-determined amount of time after assignment without receipt of aninteraction by a user. The interaction can be a click and facilitatingcan include receiving a call from the user based on the interaction andconnecting the received call to a telephone number associated with thecontent sponsor. The identifier associated with the user can be a callertelephone number. A call to a telephone number that is in the pool canbe received. A caller number can be identified for the received call. Adetermination can be made regarding whether the caller number is thesame as the stored caller number and when so, the call can be connectedto the content sponsor. Assigning can include assigning a number to thecontent item that has historically been previously assigned to thecontent sponsor.

Particular implementations may realize none, one or more of thefollowing advantages. A user interaction with a content item can beassociated with a call by a user to a phone number associated with thecontent item. A determination can be made that a call was generated as aresult of an interaction with a content item rather than from as aresult of some other action. A content sponsor can receive a reportwhich displays how many calls were generated from each content item in acontent campaign. A content sponsor can optimize a content campaign thatincludes multiple content items based on how many calls were generatedfrom each content item. A content-interaction to call-placed mapping canbe provided for a first number of content items using a pool including asecond number of telephone numbers, wherein the first number issignificantly larger (e.g., at least an order of magnitude larger) thanthe second number.

The details of one or more implementations of the subject matterdescribed in this specification are set forth in the accompanyingdrawings and the description below. Other features, aspects, andadvantages of the subject matter will become apparent from thedescription, the drawings, and the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example environment for providingcontent to a user.

FIG. 2 is a block diagram of an example system for dynamic telephonenumber assignment.

FIG. 3 is a flowchart of an example process for dynamic telephone numberassignment.

FIG. 4 illustrates an example content item effectiveness report.

FIG. 5 is a flowchart of an example process for connecting a telephonecall.

FIG. 6 is a block diagram of computing devices that may be used toimplement the systems and methods described in this document, as eithera client or as a server or plurality of servers.

Like reference numbers and designations in the various drawings indicatelike elements.

DETAILED DESCRIPTION

A content management system can provide a content item for presentationon a device associated with a user, wherein the content item includes acontrol for initiating a call to a content sponsor or a designatedentity associated with the content item. The content management systemcan assign (e.g., dynamically) a telephone number from a pool ofavailable telephone numbers to the content item which can includeassociating the telephone number with the content item. An indication ofan interaction with the control can be received, and based on such aninteraction, a connection between a user that initiated the interactionand the content sponsor can be facilitated. An association between anidentifier associated with the user, the assigned telephone number, andan identifier for the content sponsor can be stored such that futurecalls from the user to the telephone number can be routed to the contentsponsor. An impression of the content item can be linked with theconnection such that a report can be generated that shows aneffectiveness of the impression of the content item.

For situations in which the systems discussed here collect informationabout users, or may make use of information about users, the users maybe provided with an opportunity to control whether programs or featurescollect user information (e.g., information about a user's socialnetwork, social actions or activities, profession, a user's preferences,or a user's current location), or to control whether and/or how toreceive content from the content server that may be more relevant to theuser. In addition, certain data may be manipulated in one or more waysbefore it is stored or used, so that certain information about the useris removed. For example, a user's identity may be manipulated so that noidentifying information can be determined for the user, or a user'sgeographic location may be generalized where location information isobtained (such as to a city, ZIP code, or state level), so that aparticular location of a user cannot be determined. Thus, the user mayhave control over how information about the user is collected and usedby a content server.

FIG. 1 is a block diagram of an example environment 100 for providingcontent to a user. The example environment 100 includes a network 102,such as a local area network (LAN), a wide area network (WAN), theInternet, or a combination thereof. The network 102 connects websites104, user devices 106, content providers 108, publishers, and a contentmanagement system 110. The example environment 100 may include manythousands of websites 104, user devices 106, and content providers 108.The content management system 110 may be used for selecting andproviding content in response to requests for content. The contentproviders 108 can be, for example, advertisers. Other types of contentproviders are possible.

A website 104 includes one or more resources 105 associated with adomain name and hosted by one or more servers. An example website 104 isa collection of web pages formatted in hypertext markup language (HTML)that can contain text, images, multimedia content, and programmingelements, such as scripts. Each website 104 can be maintained by acontent publisher, which is an entity that controls, manages and/or ownsthe website 104.

A resource 105 can be any data that can be provided over the network102. A resource 105 can be identified by a resource address that isassociated with the resource 105. Resources 105 include HTML pages, wordprocessing documents, portable document format (PDF) documents, images,video, and news feed sources, to name only a few. The resources 105 caninclude content, such as words, phrases, videos, images and sounds, thatmay include embedded information (such as meta-information hyperlinks)and/or embedded instructions (such as scripts).

A user device 106 is an electronic device that is under control of auser and is capable of requesting and receiving resources 105 over thenetwork 102. Example user devices 106 include personal computers, tabletcomputers, mobile communication devices (e.g., smartphones),televisions, set top boxes, personal digital assistants and otherdevices that can send and receive data over the network 102. A userdevice 106 typically includes one or more user applications, such as aweb browser, to facilitate the sending and receiving of data over thenetwork 102. The web browser can interact with various types of webapplications, such as a game, a map application, or an e-mailapplication, to name a few examples.

A user device 106 can request resources 105 from a website 104. In turn,data representing the resource 105 can be provided to the user device106 for presentation by the user device 106. User devices 106 can alsosubmit search queries 116 to the search system 112 over the network 102.In response to a search query 116, the search system 112 can, forexample, access the indexed cache 114 to identify resources 105 that arerelevant to the search query 116. The search system 112 identifies theresources 105 in the form of search results 118 and returns the searchresults 118 to the user devices 106 in search results pages. A searchresult 118 is data generated by the search system 112 that identifies aresource 105 that is responsive to a particular search query 116, andincludes a link to the resource 105. An example search result 118 caninclude a web page title, a snippet of text or a portion of an imageextracted from the web page, and the URL (Unified Resource Location) ofthe web page.

The data representing the resource 105 or the search results 118 canalso include data specifying a portion of the resource 105 or searchresults 118 or a portion of a user display (e.g., a presentationlocation of a pop-up window or in a slot of a web page) in which othercontent (e.g., advertisements) can be presented. These specifiedportions of the resource or user display are referred to as slots orimpressions. An example slot is an advertisement slot.

When a resource 105 or search results 118 are requested by a user device106, the content management system 110 may receive a request for contentto be provided with the resource 105 or search results 118. The requestfor content can include characteristics of one or more slots orimpressions that are defined for the requested resource 105 or searchresults 118. For example, a reference (e.g., URL) to the resource 105 orsearch results 118 for which the slot is defined, a size of the slot,and/or media types that are available for presentation in the slot canbe provided to the content management system 110. Similarly, keywordsassociated with a requested resource (“resource keywords”) or a searchquery 116 for which search results 118 are requested can also beprovided to the content management system 110 to facilitateidentification of content that is relevant to the resource or searchquery 116.

Based, for example, on data included in the request for content, thecontent management system 110 can select content items that are eligibleto be provided in response to the request, such as content items havingcharacteristics matching the characteristics of a given slot. As anotherexample, content items having selection criteria (e.g., keywords) thatmatch the resource keywords or the search query 116 may be selected aseligible content items by the content management system 110. One or moreselected content items can be provided to the user device 106 inassociation with providing an associated resource 105 or search results118.

In some implementations, the content management system 110 can selectcontent items based at least in part on results of an auction. Forexample, content providers 108 can provide bids specifying amounts thatthe content providers 108 are respectively willing to pay forpresentation of their content items. In turn, an auction can beperformed and the slots can be allocated to content providers 108according, among other things, to their bids and/or the relevance of acontent item to content presented on a page hosting the slot or arequest that is received for the content item. For example, when a slotis being allocated in an auction, the slot can be allocated to thecontent provider 108 that provided the highest bid or a highest auctionscore (e.g., a score that is computed as a function of a bid and/or aquality measure). When multiple slots are allocated in a single auction,the slots can be allocated to a set of bidders that provided the highestbids or have the highest auction scores.

In some implementations, some content providers 108 prefer that thenumber of impressions allocated to their content and the price paid forthe number of impressions be more predictable than the predictabilityprovided by an auction. For example, a content provider 108 can increasethe likelihood that its content receives a desired or specified numberof impressions, for example, by entering into an agreement with apublisher 109, where the agreement requires the publisher 109 to provideat least a threshold number of impressions (e.g., 1,000 impressions) fora particular content item provided by the content provider 108 over aspecified period (e.g., one week). In turn, the content provider 108,publisher 109, or both parties can provide data to the contentmanagement system 110 that enables the content management system 110 tofacilitate satisfaction of the agreement.

For example, the content provider 108 can upload a content item andauthorize the content management system 110 to provide the content itemin response to requests for content corresponding to the website 104 ofthe publisher 109. Similarly, the publisher 109 can provide the contentmanagement system 110 with data representing the specified time periodas well as the threshold number of impressions that the publisher 109has agreed to allocate to the content item over the specified timeperiod. Over time, the content management system 110 can select contentitems based at least in part on a goal of allocating at least a minimumnumber of impressions to a content item in order to satisfy a deliverygoal for the content item during a specified period of time.

A content provider 108 or content sponsor can create a content campaignassociated with one or more content items using tools provided by thecontent management system 110. For example, the content managementsystem 110 can provide one or more account management user interfacesfor creating and managing content campaigns. The account management userinterfaces can be made available to the content provider 108, forexample, either through an online interface provided by the contentmanagement system 110 or as an account management software applicationinstalled and executed locally at a content provider's client device.

A content provider 108 can, using the account management userinterfaces, provide campaign parameters 120 which define a contentcampaign. The content campaign can be created and activated for thecontent provider 108 according to the parameters 120 specified by thecontent provider 108. The campaign parameters 120 can be stored in aparameters data store 122. Campaign parameters 120 can include, forexample, a campaign name, a preferred content network for placingcontent, a budget for the campaign, start and end dates for thecampaign, a schedule for content placements, content (e.g., creatives),bids, and selection criteria. Selection criteria can include, forexample, a language, one or more geographical locations or websites,and/or one or more selection terms.

Some or all content items associated with a content provider 108 can beassociated with a telephone number of the content provider 108 oranother designated entity. For example, a content item can include acontrol (e.g., a “call” button) for initiating a call to the contentprovider 108. A content provider 108 may desire to know which callsoriginated from or are a result of presentation of a specific contentitem. A solution of assigning a unique telephone number to each contentitem may not be practical since the number of content items provided bythe content management system 110 may exceed a number of availabletelephone numbers.

Rather than associating a unique telephone number with each contentitem, a pool of telephone numbers can be used. For example, the controlincluded in a content item can be configured to place a call, but notdisplay a specific telephone number. The user can interact with (e.g.,select or click) the control to initiate a call to the content provider108 or other designated entity associated with the content item. Inresponse to the control interaction, a request for a forwardingtelephone number can be sent to a telephony system 123. The telephonysystem 123 can select an available forwarding number from a telephonenumber pool 124 and, in some implementations, can provide the selectedforwarding number to the user device 106 of the user.

In some implementations, the user device 106 can initiate a call to theforwarding number and the call can be received by the telephony system123. The telephony system 123 can route the call to the telephone numberassociated with the content provider 108 or the designated entity. Thetelephony system 123 can associate the impression of the content itemwith the call to the telephone number of the content provider 108, suchas in a call data datastore 126.

The telephony system 123 can generate one or more reports which includeinformation which indicates which calls to the content provider 108 ordesignated entity were generated from which content items. The one ormore reports can be provided to the content provider 108, as illustratedby reports 128.

FIG. 2 is a block diagram of an example system 200 for dynamic phonenumber assignment. Content sponsors, such as content sponsors 202 and204, may desire, as part of respective content campaigns, to trackeffectiveness of content items included in the respective contentcampaigns. For example, some or all content items included in a contentcampaign for the content sponsor 202 may be configured to facilitate aconnection with (e.g., placing a call to) the content sponsor 202. Theuser, for example, can call the content sponsor 202 to make a purchase,inquire about a product or service, etc. The content sponsor 202 maydesire to track, for example, how many calls to the content sponsor 202are generated from each content item included in the content campaignand to track how many conversions (e.g., completed purchases) resultfrom the calls generated from each content item.

A content item included in the content campaign of the content sponsor202 can be provided to a user in response to a request for content froma user device. For example, a mobile user device 206 of a user 208 cansend a request for content to a content server 210 for a content item tobe presented in a content slot 212 of a web page 214 that is presentedon the user device 206. The content server 210 can select a content itemto be provided to the user device 206 and the selected content item canbe presented in the content slot 212, as illustrated by a content item216.

The content item 216 includes a control 218 for initiating a call to thecontent sponsor 202 or other designated entity. The user 208 caninteract with (e.g., select or click) the control 218. In response to aninteraction with the control 218, a request can be sent to a telephonyserver 220. The request sent to the telephony server 220 can include aunique identifier (e.g., an impression identifier) corresponding to thepresentation of the content item 216 in the content slot 212.

A phone number manager/allocator 222 included in the telephony server220 can select an available forwarding telephone number from anavailable number pool 224. The available number pool 224 can include aset of forwarding telephone numbers that are available to be assigned inresponse to interaction with a control such as the control 218. Thephone number manager/allocator 222 can store a first type of associationbetween the impression identifier associated with the impression of thecontent item 216, the selected forwarding telephone number, and atelephone number associated with the content sponsor 202, in anassociations data store 226.

In some implementations, the telephony server 220 can send the selectedforwarding telephone number to the user device 206. In someimplementations, the user device 206 can automatically dial theforwarding telephone number in response to receiving the forwardingtelephone number. In some implementations, the user device 206 can loada dialer on the user device 206, and using the received forwardingtelephone number, initiate a call to the forwarding telephone number(e.g., by selecting a dial control on the user device 206). In someimplementations, the user device 206 displays the forwarding telephonenumber and the user 206 enters the forwarding telephone number into thedialer and initiates a call to the forwarding telephone number. In someimplementations, the telephony server 220 can place the call using theselected forwarding telephone number and connect the user device 206 tothe call. Other dialing options are possible.

In some implementations, when the forwarding telephone number is dialed,the call is received by a telephony IVR (Interactive Voice Response)system 228. The telephony IVR system 228 bridges the call placed to theforwarding telephone number to a telephone number associated with thecontent sponsor 202 or designated entity. In response to receiving thecall using the forwarding number, the telephony server 220 can store, inthe associations data store 226, a second type of association between acaller identifier associated with the user device 206, the forwardingtelephone number, and the telephone number of the content sponsor 202 ordesignated entity. A record of the call can be stored in a logs datastore 230, and the record can include, for example, the impressionidentifier, the forwarding telephone number, an identifier of thecontent sponsor 202 or designated entity (e.g., the telephone number ofthe content sponsor 202), the caller identifier, a date and time of thecall, and/or a call duration.

After the telephony IVR system 228 connects the call to the contentsponsor 202 or designated entity, the phone number manager/allocator 222can return the forwarding telephone number to the available number pool224, and the forwarding number can be assigned to an impression ofanother content item, such as a content item associated with anothercontent sponsor (e.g., the content sponsor 204), in response to a userinteracting with a control in the other content item. In someimplementations, the phone number manager/allocator 222 maintains thefirst type of association between the selected forwarding number and thetelephone number of the content sponsor 202 for a first predeterminedperiod of time (e.g., thirty minutes to three days) after the forwardingtelephone number is provided to the user device 206. Such an associationcan be maintained, for example, so that if the user 208 happens to dialthe forwarding telephone number from a different calling device, thecall will still be connected to the content sponsor 202 or designatedentity. For example, the user 208 may see the forwarding telephonenumber displayed on the user device 206 and may dial the forwardingnumber from the user device 206 or alternatively from a differentcalling device. As another example, the user 208 may share theforwarding number with another user (e.g., a user 232), and the user 232may dial the forwarding number, such as with a user device 234.

In some implementations, the phone number manager/allocator 222maintains the second type of association between the caller identifierassociated with the user device 206, the selected forwarding telephonenumber, and the telephone number of the content sponsor 202 for a secondpredetermined period of time (e.g., ninety days to six months) after thetelephony IVR system 228 connects the call to the content sponsor 202 ordesignated entity. Such an association can be maintained, for example,so that if the user 208 dials the forwarding number during the second(e.g., longer) predetermined period of time, the call will connect tothe content sponsor 202 or designated entity. This association allowsfor calls that are received from a caller having the stored calleridentifier to be routed to the content sponsor 202 or designated entityeven when the forwarding number has been returned to the availablenumber pool 224 and has been potentially reassigned to one or more othercontent impressions that may be associated with one or more differentcontent sponsors. In some implementations, the phone numbermanager/allocator 222 maintains an association between the forwardingtelephone number, the telephone number of the content sponsor 202, and acaller identifier associated with any calling device (e.g., the userdevice 234) that places a call to the forwarding number in the firstpredetermined time period, such that subsequent calls received to theforwarding number from such calling devices within the secondpredetermined time period are connected to the content sponsor 202

In some implementations, the first predetermined time period is a shorttime period as compared to the second predetermined time period. Forexample, the first predetermined time period can be one hour and thesecond predetermined time period can be ninety days. The firstpredetermined time period can be short, for example, to allow forwardingtelephone numbers to be returned to the pool to make the returnedforwarding telephone numbers available for assignment to other contentimpressions shown to potentially other users.

In some implementations, a content item configured to facilitate aconnection to a content sponsor (e.g., the content sponsor 204) can bedisplayed on a user device which does not have calling capability (e.g.,a laptop user device 236 of a user 238). For example, the user device236 can send a request for content to the content server 210 for acontent item to be presented in a content slot 240 of a web page 242that is presented on the user device 236. The content server 210 canselect a content item to be provided to the user device 236 and theselected content item can be presented in the content slot 240, asillustrated by a content item 244.

The content item 244 includes a control 246 for displaying a telephonenumber associated with the content sponsor 204. The user 238 caninteract with (e.g., select or click) the control 246. In response to aninteraction with the control 246, a request can be sent to the telephonyserver 220. The request sent to the telephony server 220 can include animpression identifier corresponding to the presentation of the contentitem 244 in the content slot 240.

The phone number manager/allocator 222 can select an availableforwarding telephone number from the available number pool 224. Thephone number manager/allocator 222 can store an association between theimpression identifier associated with the impression of the content item244, the forwarding telephone number selected in response to the requestreceived from the user device 236, and a telephone number associatedwith the content sponsor 204, in the associations data store 226. Thetelephony server 220 can send the selected forwarding telephone numberto the user device 206. The forwarding telephone number can be displayedin the content item 244. The phone number manager/allocator 222 canstore an association between the selected forwarding telephone numberand the telephone number associated with the content sponsor 204 for thefirst predetermined period of time. During the first predeterminedperiod of time, if a call is received by the telephony IVR system 228 tothe selected forwarding number, the telephony IVR system 228 can connectthe call to the telephone number associated with the content sponsor204.

In some implementations, the phone number manager/allocator 222determines, in response to a received request that is associated with acontent item from a content sponsor, whether a forwarding number hasalready been assigned to an impression of that content item in responseto a previous request. If a forwarding number has already been assignedto an impression of that content item, the phone numbermanager/allocator 222 can select the same forwarding number in responseto the current request. Selecting the same forwarding number can resultin the same or a same set of forwarding numbers being selected for aparticular content sponsor.

The telephony server 220 can include an online spam detector 250 and anoffline spam detector 252, to protect, for example, against maliciousattempts to deplete the available number pool 224. The online spamdetector 250 can be used, for example, to detect and prevent denial ofservice attacks.

The offline spam detector 252 can periodically (e.g., daily) evaluatethe logs datastore 230, for example, to evaluate a volume of activityfrom a same IP (Internet Protocol) address or IP address range and/orfrom a same telephone number. When, for example, a greater than athreshold number of requests are received from a same IP address, butnone or less than a threshold of valid calls are made in associationwith those requests, the content server 210 can be configured to notsend content items to the IP address and/or the phone numbermanager/allocator 222 can be configured to not provide a forwardingnumber in response to requests received from the IP address. The onlinespam detector 250 can be updated in response to determinations made bythe offline spam detector 250. In response to offline or online spamdetection, forwarding numbers determined to be associated with invalidactivity can be returned to the available number pool 224.

FIG. 3 is a flowchart of an example process 300 for dynamic telephonenumber assignment. The process 300 can be performed, for example, by thetelephony system 123 described above with respect to FIG. 1, or thetelephony server 220 described above with respect to FIG. 2.

An impression is provided (302), including providing a content item forpresentation on a device associated with a user, the content itemincluding a control for initiating a call to a content sponsor ordesignated entity associated with the content item. The device can be,for example, a mobile device with call-making capability. The contentitem can be, for example, an advertisement or some other type of contentitem. The control can be, for example, a button or a link. The button orlink can include a caption which does not include a displayed telephonenumber.

A telephone number is assigned from a pool of available telephonenumbers to the content item (304), wherein the assigning includesassociating the telephone number with the content item. The assigningcan occur, for example, at the time the impression of the content itemis provided. As described below, the assigning can occur after anindication of an interaction with the control is received. The pool caninclude a plurality of telephone numbers which may or may not have beenpreviously assigned to other content items but are now available forassignment. In some implementations, a number can be assigned to thecontent item that has historically been previously assigned to thecontent sponsor.

An indication of an interaction with the control is received (306). Theinteraction can be, for example, a selection (e.g., click) of thecontrol. In some implementations, the telephone number is assigned tothe content item in response to the interaction. The assigned telephonenumber can be provided to the device associated with the user inresponse to the interaction. In some implementations, a call is receivedfrom the device based on the interaction.

A connection between the user and the content sponsor is facilitated,based on the interaction (308). For example, a call received from thedevice can be connected to a telephone number associated with thecontent sponsor or other designated entity.

An association is stored between an identifier associated with the user,the assigned telephone number, and an identifier for the content sponsor(310), such that future calls from the user to the telephone number canbe routed to the content sponsor, even after the assigned telephonenumber has been returned to the pool of available telephone numbers. Theassociation can be maintained, for example, for a predetermined periodof time (e.g., ninety days, six months).

An impression of the content item is linked with the connection (312),such that a report can be generated that shows an effectiveness of theimpression of the content item. The report can be provided, for example,to the content sponsor. The report can be provided on demand to thecontent sponsor and/or the report can be provided automatically on aperiodic basis (e.g., monthly).

FIG. 4 illustrates an example content item effectiveness report 400. Thereport 400 is provided to a content sponsor “123”, for a period of May 1to May 31, 2013, for a campaign “A”, as indicated by labels 402, 404,and 406, respectively. A section 408 includes information for a contentitem “1” and a content item “2” included in a content group “A” that isincluded in the campaign “A”. For example, the section 408 includesinformation that indicates that out of 2,843 impressions, the contentitem “1” generated four hundred thirty two calls to the content sponsor,with two hundred eleven of those calls resulting in a conversion, andthat out of 2,421 impressions, the content item “2” generated twohundred eleven calls to the content sponsor, with fifty four of thosecalls resulting in a conversion. A subtotal section 410 displays totalsfor the content group “A”.

A section 412 includes information about a content item “3” and acontent item “4” included in a content group “B”. For example, out of1,812 impressions, the content item “3” generated eighty nine calls tothe content sponsor, with thirty three calls resulting in a conversion,and out of 1,922 impressions, the content item “4” generated one hundredtwelve calls to the content sponsor, with fifty six calls resulting in aconversion. A subtotal section 414 displays totals for the content group“B” and a totals section 416 displays totals for the campaign “A”.

The content sponsor “123” can use the report 400, for example, tooptimize the content campaign “A”. For example, the content sponsor candetermine that the content items in the content group “A” have been moreeffective than the content items included in the content group “B”. Thecontent sponsor can determine, for example, to increase a campaignbudget portion allocated to the content group “A” content items, candetermine to reconfigure the content items in the content group “B”(e.g., change bids, change creative content) to attempt to make thecontent items in the content group “B” more effective, or can determineto remove the content items included in the content group “B” from thecampaign “A”. In some implementations, some or all such optimizationscan be performed automatically. For example, a bid for a content itemcan be automatically adjusted based on a rate of call generation and/ora rate of conversion for a time period.

FIG. 5 is a flowchart of an example process 500 for connecting atelephone call. The process 500 can be performed, for example, by thetelephony system 123 described above with respect to FIG. 1, or thetelephony server 220 described above with respect to FIG. 2.

A call to a telephone number that is in a pool of available telephonenumbers is received (502). For example, the telephone number can beincluded in the telephone number pool 124. The call can be received, forexample, by the telephony system 123, from a user device 106, such as amobile device. The user, for example, can interact with a call controlincluded in a presented content item. In association with the receipt ofthe call, an impression identifier of the content item can be received.

A caller number for the received call is identified (504). The callernumber can be, for example, a caller identification number.

A determination is made as to whether the caller number is the same as astored caller number (506). For example, a determination can be made asto whether the caller number is included in a set of storedassociations, where the stored associations each associate a callernumber, an impression identifier of an impression of a previouslypresented content item, a first telephone number associated with acontent sponsor, and a second telephone number. If the caller number isincluded in a stored association, the stored association that includesthe caller number and the impression identifier can be identified. Thepresence of a stored association between a caller number, a telephonenumber of a content sponsor or other designated entity, an impressionidentifier, and a second telephone number can indicate that the secondtelephone number was previously associated with (e.g., assigned to) thecaller number and the impression identifier.

When the caller number matches a stored caller number which isassociated with a stored impression identifier that matches the receivedimpression identifier, a call to a content sponsor or other designatedentity associated with the stored caller number is connected (508). Forexample, the telephone number associated with the stored caller numbercan be accessed using the identified stored association. Connecting thecall to the content sponsor associated with the stored caller number cancreate a consistent user experience for the user—for example, the usermay have previously called the content sponsor using a particularassigned telephone number and expects a call placed to that number willresult in a connection to the same content sponsor.

FIG. 6 is a block diagram of computing devices 600, 650 that may be usedto implement the systems and methods described in this document, aseither a client or as a server or plurality of servers. Computing device600 is intended to represent various forms of digital computers, such aslaptops, desktops, workstations, personal digital assistants, servers,blade servers, mainframes, and other appropriate computers. Computingdevice 650 is intended to represent various forms of mobile devices,such as personal digital assistants, cellular telephones, smartphones,and other similar computing devices. The components shown here, theirconnections and relationships, and their functions, are meant to beillustrative only, and are not meant to limit implementations of theinventions described and/or claimed in this document.

Computing device 600 includes a processor 602, memory 604, a storagedevice 606, a high-speed interface 608 connecting to memory 604 andhigh-speed expansion ports 610, and a low speed interface 612 connectingto low speed bus 614 and storage device 606. Each of the components 602,604, 606, 608, 610, and 612, are interconnected using various busses,and may be mounted on a common motherboard or in other manners asappropriate. The processor 602 can process instructions for executionwithin the computing device 600, including instructions stored in thememory 604 or on the storage device 606 to display graphical informationfor a GUI on an external input/output device, such as display 616coupled to high speed interface 608. In other implementations, multipleprocessors and/or multiple buses may be used, as appropriate, along withmultiple memories and types of memory. Also, multiple computing devices600 may be connected, with each device providing portions of thenecessary operations (e.g., as a server bank, a group of blade servers,or a multi-processor system).

The memory 604 stores information within the computing device 600. Inone implementation, the memory 604 is a computer-readable medium. Thecomputer-readable medium is not a propagating signal. In oneimplementation, the memory 604 is a volatile memory unit or units. Inanother implementation, the memory 604 is a non-volatile memory unit orunits.

The storage device 606 is capable of providing mass storage for thecomputing device 600. In one implementation, the storage device 606 is acomputer-readable medium. In various different implementations, thestorage device 606 may be a floppy disk device, a hard disk device, anoptical disk device, or a tape device, a flash memory or other similarsolid state memory device, or an array of devices, including devices ina storage area network or other configurations. In one implementation, acomputer program product is tangibly embodied in an information carrier.The computer program product contains instructions that, when executed,perform one or more methods, such as those described above. Theinformation carrier is a computer- or machine-readable medium, such asthe memory 604, the storage device 606, or memory on processor 602.

The high speed controller 608 manages bandwidth-intensive operations forthe computing device 600, while the low speed controller 612 manageslower bandwidth-intensive operations. Such allocation of duties isillustrative only. In one implementation, the high-speed controller 608is coupled to memory 604, display 616 (e.g., through a graphicsprocessor or accelerator), and to high-speed expansion ports 610, whichmay accept various expansion cards (not shown). In the implementation,low-speed controller 612 is coupled to storage device 606 and low-speedexpansion port 614. The low-speed expansion port, which may includevarious communication ports (e.g., USB, Bluetooth, Ethernet, wirelessEthernet) may be coupled to one or more input/output devices, such as akeyboard, a pointing device, a scanner, or a networking device such as aswitch or router, e.g., through a network adapter.

The computing device 600 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as astandard server 620, or multiple times in a group of such servers. Itmay also be implemented as part of a rack server system 624. Inaddition, it may be implemented in a personal computer such as a laptopcomputer 622. Alternatively, components from computing device 600 may becombined with other components in a mobile device (not shown), such asdevice 650. Each of such devices may contain one or more of computingdevice 600, 650, and an entire system may be made up of multiplecomputing devices 600, 650 communicating with each other.

Computing device 650 includes a processor 652, memory 664, aninput/output device such as a display 654, a communication interface666, and a transceiver 668, among other components. The device 650 mayalso be provided with a storage device, such as a microdrive or otherdevice, to provide additional storage. Each of the components 650, 652,664, 654, 666, and 668, are interconnected using various buses, andseveral of the components may be mounted on a common motherboard or inother manners as appropriate.

The processor 652 can process instructions for execution within thecomputing device 650, including instructions stored in the memory 664.The processor may also include separate analog and digital processors.The processor may provide, for example, for coordination of the othercomponents of the device 650, such as control of user interfaces,applications run by device 650, and wireless communication by device650.

Processor 652 may communicate with a user through control interface 658and display interface 656 coupled to a display 654. The display 654 maybe, for example, a TFT LCD display or an OLED display, or otherappropriate display technology. The display interface 656 may compriseappropriate circuitry for driving the display 654 to present graphicaland other information to a user. The control interface 658 may receivecommands from a user and convert them for submission to the processor652. In addition, an external interface 662 may be provide incommunication with processor 652, so as to enable near areacommunication of device 650 with other devices. External interface 662may provide, for example, for wired communication (e.g., via a dockingprocedure) or for wireless communication (e.g., via Bluetooth or othersuch technologies).

The memory 664 stores information within the computing device 650. Inone implementation, the memory 664 is a computer-readable medium. In oneimplementation, the memory 664 is a volatile memory unit or units. Inanother implementation, the memory 664 is a non-volatile memory unit orunits. Expansion memory 674 may also be provided and connected to device650 through expansion interface 672, which may include, for example, aSIMM card interface. Such expansion memory 674 may provide extra storagespace for device 650, or may also store applications or otherinformation for device 650. Specifically, expansion memory 674 mayinclude instructions to carry out or supplement the processes describedabove, and may include secure information also. Thus, for example,expansion memory 674 may be provide as a security module for device 650,and may be programmed with instructions that permit secure use of device650. In addition, secure applications may be provided via the SIMMcards, along with additional information, such as placing identifyinginformation on the SIMM card in a non-hackable manner.

The memory may include for example, flash memory and/or MRAM memory, asdiscussed below. In one implementation, a computer program product istangibly embodied in an information carrier. The computer programproduct contains instructions that, when executed, perform one or moremethods, such as those described above. The information carrier is acomputer- or machine-readable medium, such as the memory 664, expansionmemory 674, or memory on processor 652.

Device 650 may communicate wirelessly through communication interface666, which may include digital signal processing circuitry wherenecessary. Communication interface 666 may provide for communicationsunder various modes or protocols, such as GSM voice calls, SMS, EMS, orMMS messaging, CDMA, TDMA, PDC, WCDMA, CDMA2000, or GPRS, among others.Such communication may occur, for example, through radio-frequencytransceiver 668. In addition, short-range communication may occur, suchas using a Bluetooth, WiFi, or other such transceiver (not shown). Inaddition, GPS receiver module 670 may provide additional wireless datato device 650, which may be used as appropriate by applications runningon device 650.

Device 650 may also communication audibly using audio codec 660, whichmay receive spoken information from a user and convert it to usabledigital information. Audio codex 660 may likewise generate audible soundfor a user, such as through a speaker, e.g., in a handset of device 650.Such sound may include sound from voice telephone calls, may includerecorded sound (e.g., voice messages, music files, etc.) and may alsoinclude sound generated by applications operating on device 650.

The computing device 650 may be implemented in a number of differentforms, as shown in the figure. For example, it may be implemented as acellular telephone 680. It may also be implemented as part of asmartphone 682, personal digital assistant, or other similar mobiledevice.

Various implementations of the systems and techniques described here canbe realized in digital electronic circuitry, integrated circuitry,specially designed ASICs (application specific integrated circuits),computer hardware, firmware, software, and/or combinations thereof.These various implementations can include implementation in one or morecomputer programs that are executable and/or interpretable on aprogrammable system including at least one programmable processor, whichmay be special or general purpose, coupled to receive data andinstructions from, and to transmit data and instructions to, a storagesystem, at least one input device, and at least one output device.

These computer programs (also known as programs, software, softwareapplications or code) include machine instructions for a programmableprocessor, and can be implemented in a high-level procedural and/orobject-oriented programming language, and/or in assembly/machinelanguage. As used herein, the terms “machine-readable medium”“computer-readable medium” refers to any computer program product,apparatus and/or device (e.g., magnetic discs, optical disks, memory,Programmable Logic Devices (PLDs)) used to provide machine instructionsand/or data to a programmable processor, including a machine-readablemedium that receives machine instructions as a machine-readable signal.The term “machine-readable signal” refers to any signal used to providemachine instructions and/or data to a programmable processor.

To provide for interaction with a user, the systems and techniquesdescribed here can be implemented on a computer having a display device(e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor)for displaying information to the user and a keyboard and a pointingdevice (e.g., a mouse or a trackball) by which the user can provideinput to the computer. Other kinds of devices can be used to provide forinteraction with a user as well; for example, feedback provided to theuser can be any form of sensory feedback (e.g., visual feedback,auditory feedback, or tactile feedback); and input from the user can bereceived in any form, including acoustic, speech, or tactile input.

The systems and techniques described here can be implemented in acomputing system that includes a back-end component (e.g., as a dataserver), or that includes a middleware component (e.g., an applicationserver), or that includes a front-end component (e.g., a client computerhaving a graphical user interface or a Web browser through which a usercan interact with an implementation of the systems and techniquesdescribed here), or any combination of such back-end, middleware, orfront-end components. The components of the system can be interconnectedby any form or medium of digital data communication (e.g., acommunication network). Examples of communication networks include alocal area network (“LAN”), a wide area network (“WAN”), and theInternet.

The computing system can include clients and servers. A client andserver are generally remote from each other and typically interactthrough a communication network. The relationship of client and serverarises by virtue of computer programs running on the respectivecomputers and having a client-server relationship to each other.

A number of embodiments of the invention have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the invention. Forexample, various forms of the flows shown above may be used, with stepsre-ordered, added, or removed. Also, although several applications ofthe payment systems and methods have been described, it should berecognized that numerous other applications are contemplated.Accordingly, other embodiments are within the scope of the followingclaims.

1. (canceled)
 2. A method comprising: identifying an opportunity todeliver a content item to a user; evaluating, by one or more processors,a data structure to locate a given forwarding telephone number that hasnot been previously assigned to a combination of the user and a contentsponsor of the content item; assigning the given forwarding telephonenumber from the pool of forwarding telephone numbers to the contentitem; receiving an indication of a user interaction with a control thatinitiates a call to the given forwarding telephone number; facilitating,based on the initiation of the call to the given forwarding telephonenumber, a call between the user and the content sponsor at a telephonenumber of the content sponsor that differs from the given forwardingtelephone number to which the call was initiated; after facilitating thecall between the user and the content sponsor, reassigning theforwarding telephone number to a different content item provided by adifferent content sponsor; after reassigning the forwarding telephonenumber to the different content item, identifying, by the one or moreprocessors, a subsequent telephone call from the user to the forwardingtelephone number; and after reassigning the forwarding telephone numberto the different content item and in response to identifying thesubsequent telephone call from the user to the forwarding telephonenumber, connecting the user to the telephone number of the contentsponsor of the content item rather than the different content sponsor ofthe different content item that is assigned the forwarding telephonenumber after the reassigning, wherein the connecting is performed basedon the interaction with the control that previously initiated the callto the given forwarding number while the given forwarding number wasassigned to the content sponsor.
 3. The method of claim 2, wherein thepool of forwarding telephone numbers includes a plurality of telephonenumbers that have been previously assigned to other content items, butare now available for reassignment.
 4. The method of claim 3, whereinthe control is a graphical button that does not include a visibletelephone number.
 5. The method of claim 4, wherein the user interactionwith the control is a click of the graphical button.
 6. The method ofclaim 5, wherein facilitating the call between the user and the contentsponsor comprises: receiving the call to the given forwarding telephonenumber from the user based on the interaction; and connecting thereceived call to the telephone number of the content sponsor.
 7. Themethod of claim 6, further comprising determining that the subsequenttelephone call is from the user that previously interacted with thecontrol based on an identifier corresponding to the user being stored inassociation with the given forwarding telephone number, whereinconnecting the user to the telephone number of the content sponsor ofthe content item rather than the different content sponsor of thedifferent content item that is assigned the forwarding telephone numberafter the reassigning is performed based on the identifier correspondingto the user being stored in association with the given forwardingtelephone number.
 8. The method of claim 7, wherein receiving anindication of a user interaction with a control that initiates a call tothe given telephone number comprises receiving, from a mobile device,the indication of the user interaction.
 9. A system comprising: one ormore processors; and one or more memory elements including instructionsthat when executed cause the one or more processors to performoperations comprising: identifying an opportunity to deliver a contentitem to a user; evaluating a data structure to locate a given forwardingtelephone number that has not been previously assigned to a combinationof the user and a content sponsor of the content item; assigning thegiven forwarding telephone number from the pool of forwarding telephonenumbers to the content item; receiving an indication of a userinteraction with a control that initiates a call to the given forwardingtelephone number; facilitating, based on the initiation of the call tothe given forwarding telephone number, a call between the user and thecontent sponsor at a telephone number of the content sponsor thatdiffers from the given forwarding telephone number to which the call wasinitiated; after facilitating the call between the user and the contentsponsor, reassigning the forwarding telephone number to a differentcontent item provided by a different content sponsor; after reassigningthe forwarding telephone number to the different content item,identifying a subsequent telephone call from the user to the forwardingtelephone number; and after reassigning the forwarding telephone numberto the different content item and in response to identifying thesubsequent telephone call from the user to the forwarding telephonenumber, connecting the user to the telephone number of the contentsponsor of the content item rather than the different content sponsor ofthe different content item that is assigned the forwarding telephonenumber after the reassigning, wherein the connecting is performed basedon the interaction with the control that previously initiated the callto the given forwarding number while the given forwarding number wasassigned to the content sponsor.
 10. The system of claim 9, wherein thepool of forwarding telephone numbers includes a plurality of telephonenumbers that have been previously assigned to other content items, butare now available for reassignment.
 11. The system of claim 10, whereinthe control is a graphical button that does not include a visibletelephone number.
 12. The system of claim 11, wherein the userinteraction with the control is a click of the graphical button.
 13. Thesystem of claim 12, wherein facilitating the call between the user andthe content sponsor comprises: receiving the call to the givenforwarding telephone number from the user based on the interaction; andconnecting the received call to the telephone number of the contentsponsor.
 14. The system of claim 13, wherein the instructions cause theone or more processors to perform operations further comprisingdetermining that the subsequent telephone call is from the user thatpreviously interacted with the control based on an identifiercorresponding to the user being stored in association with the givenforwarding telephone number, wherein connecting the user to thetelephone number of the content sponsor of the content item rather thanthe different content sponsor of the different content item that isassigned the forwarding telephone number after the reassigning isperformed based on the identifier corresponding to the user being storedin association with the given forwarding telephone number.
 15. Thesystem of claim 14, wherein receiving an indication of a userinteraction with a control that initiates a call to the given telephonenumber comprises receiving, from a mobile device, the indication of theuser interaction.
 16. A non-transitory computer readable medium storinginstructions that, upon execution by one or more processors, cause theone or more processors to perform operations comprising: identifying anopportunity to deliver a content item to a user; evaluating a datastructure to locate a given forwarding telephone number that has notbeen previously assigned to a combination of the user and a contentsponsor of the content item; assigning the given forwarding telephonenumber from the pool of forwarding telephone numbers to the contentitem; receiving an indication of a user interaction with a control thatinitiates a call to the given forwarding telephone number; facilitating,based on the initiation of the call to the given forwarding telephonenumber, a call between the user and the content sponsor at a telephonenumber of the content sponsor that differs from the given forwardingtelephone number to which the call was initiated; after facilitating thecall between the user and the content sponsor, reassigning theforwarding telephone number to a different content item provided by adifferent content sponsor; after reassigning the forwarding telephonenumber to the different content item, identifying a subsequent telephonecall from the user to the forwarding telephone number; and afterreassigning the forwarding telephone number to the different contentitem and in response to identifying the subsequent telephone call fromthe user to the forwarding telephone number, connecting the user to thetelephone number of the content sponsor of the content item rather thanthe different content sponsor of the different content item that isassigned the forwarding telephone number after the reassigning, whereinthe connecting is performed based on the interaction with the controlthat previously initiated the call to the given forwarding number whilethe given forwarding number was assigned to the content sponsor.
 17. Thenon-transitory computer readable medium of claim 16, wherein the pool offorwarding telephone numbers includes a plurality of telephone numbersthat have been previously assigned to other content items, but are nowavailable for reassignment.
 18. The non-transitory computer readablemedium of claim 17, wherein the control is a graphical button that doesnot include a visible telephone number.
 19. The non-transitory computerreadable medium of claim 18, wherein the user interaction with thecontrol is a click of the graphical button.
 20. The non-transitorycomputer readable medium of claim 19, wherein facilitating the callbetween the user and the content sponsor comprises: receiving the callto the given forwarding telephone number from the user based on theinteraction; and connecting the received call to the telephone number ofthe content sponsor.
 21. The non-transitory computer readable medium ofclaim 20, wherein the instructions cause the one or more processors toperform operations further comprising determining that the subsequenttelephone call is from the user that previously interacted with thecontrol based on an identifier corresponding to the user being stored inassociation with the given forwarding telephone number, whereinconnecting the user to the telephone number of the content sponsor ofthe content item rather than the different content sponsor of thedifferent content item that is assigned the forwarding telephone numberafter the reassigning is performed based on the identifier correspondingto the user being stored in association with the given forwardingtelephone number.